package test4_12_2;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.UUID;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * 要求：

 1. 分别创建客户端、服务端，并绑定端口。
 1. 服务端要求：
 1. 使用多线程以及线程池的方式，来侦听客户端请求；
 2. 如果有客户发出请求，则主动给每位客户端发送一句“欢迎光临！请上传文件(文本文件)！”；
 3. 用户上传后，将文件保存在本地，并回复“上传成功”；
 4. 如果客户端上传的文件中有敏感词汇，则替换成**，再保存。
 5. 敏感词汇：操

 */
public class ServerDemo {


    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(10086);

        while (true){
            /*Socket socket = serverSocket.accept();
            ThreadServer threadServer = new ThreadServer(socket);
            Thread thread = new Thread(threadServer);
            thread.start();*/

            Socket socket = serverSocket.accept();
            ThreadServer threadServer = new ThreadServer(socket);
            //使用线程池：
            ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(5,
                    8,
                    2,
                    TimeUnit.SECONDS,
                    new ArrayBlockingQueue<>(8),
                    Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());

            //提交线程任务给线程池
            poolExecutor.submit(threadServer);
        }

    }
}
